FIG. 1 is a block diagram of an example of a portion of a conventional integrated circuit (IC) chip 10. The chip 10 includes a number x of masters 12 and a number y of slaves 14, interconnected by a data bus 16. The chip 10 also includes a bus arbiter 18, which receives bus arbitration requests from the masters 12 and allows one master 12 at a time to control the bus 16. When a master 12 is given control of the bus 16, this controlling master 12 may then access any slave 14 as needed.
For example, one of the slaves 14 may be a memory controller and one of the masters 12 may be a video display controller. The video display controller may request access to video data stored within a “frame buffer” in a memory device controlled by the memory controller slave 14. The video data is retrieved by the memory controller and put out onto the data bus 16 for the video display controller. The video display controller then feeds the video data to a video display.
It should be noted that a typical memory device is usually organized in data widths of 16 bits (half word) or 32 bits (word). Video data, however, is usually organized in a data width according to the width of the pixel, which may be 16 bits, 18 bits, or 24 bits wide. Each pixel of the video data typically includes the three color components red (R), green (G), and blue (B), which are the three additive primary colors of light. Typically, each color component includes six or eight bits of data to represent that color. In the case where each color component includes six bits, the pixel contains 18 bits total. In the case where each color component includes eight bits, the pixel contains 24 bits total. The 18 or 24 bits of video data for each pixel are stored in the 32-bit format of the memory device. Any unused or “don't care” bits are disregarded by the video display controller.
FIG. 2A is a chart showing the arrangement of an eight-pixel block of video data stored in a 32-bit wide memory. In this embodiment, each color component includes six bits, which totals 18 bits for each pixel. For example, bits 17-12 may be used for the red (R) component, bits 11-6 may be used for the green (G) component, and bits 5-0 may be used for the blue (B) component. Bits 31-18 are unused, or don't cares (X's), in this system. The first memory line illustrates the first pixel (pixel “0”) including color components R0, G0, and B0. The second memory line illustrates the second pixel (pixel “1”) including color components R1, G1, and B1, etc. Although this arrangement may be a simple way to store video data, it can be seen that a large percentage of each memory word is not used.
FIG. 2B is a chart showing the arrangement of an eight-pixel block of video data stored in a 32-bit wide memory. In this embodiment, each color component includes eight bits, which totals 24 bits for each pixel. For example, bits 23-16 may be used for the red (R) component, bits 15-8 may be used for the green (G) component, and bits 7-0 may be used for the blue (B) component. Bits 31-24 are unused bits. Although the conventional arrangements shown in FIGS. 2A and 2B represent simple ways to store video data, it can be seen that at least a quarter of the bits in each word are not used.
In addition, as is apparent from these conventional storage techniques, there are many bits that are transferred along the data bus 16 that are don't cares “X”. By minimizing the number of unused bits during transmission, it may be possible to provide greater bus availability for all the bus users, thereby allowing the chip to operate more efficiently at a given speed.